home *** CD-ROM | disk | FTP | other *** search
/ The Original Shareware 1.1 / The Original Shareware (WeMake CDs)(Volume 1.1)(CDs, Inc)(1993).iso / 6 / coreaids.zip / COREAIDS.DOC < prev    next >
Text File  |  1987-06-26  |  47KB  |  975 lines

  1.       CoreAids Macro Assembler Subroutine Library Utilities
  2.                     Copyright 1987, CoreTechs
  3.  
  4. You are free to use, copy and distribute CoreAids providing that:
  5.         NO FEE IS CHARGED FOR USE, COPYING OR DISTRIBUTION.
  6.         IT IS NOT MODIFIED IN ANY WAY.
  7.  
  8. These subroutines are provided AS IS without any warranty,
  9. expressed or implied, including but not limited to fitness for a
  10. particular purpose.
  11.  
  12. Please send comments, suggestions and contributions to:
  13.  
  14.                             CoreTechs
  15.                           P.O. Box 6207
  16.                      Silver Spring, MD 20906
  17.  
  18.            SECTION I. ROUTINES LISTED ALPHABETICALLY
  19.  
  20. ALOC_CHG.ASM         6/25/87       902
  21.         DESC:   Modifies Allocated memory block size                 V1.00
  22.         IN:     *{BLOCK} segment address of memory block to be modified
  23.                 *{PARA} new requested block size in paragraphs {ie multiples
  24.                  of 16 bytes}
  25.         SAMPLE: Callm   ALOC_CHG,<BLOCK,PARA>,
  26.  
  27. ATRB_WRT.ASM         6/25/87      2268
  28.         DESC:   Writes character attributes to the screen            V1.00
  29.         IN:     *{PAGE} page number (0-3) 4 available pages in 80 column mode
  30.                 *{ROWCOL} row(0-24),col(0-79) (ie 0345 indicating fourth row,
  31.                  46th column)
  32.                 *{ATRB} attribute (see technical reference manual for
  33.                  information on color graphics adapter)
  34.                 *{NUM_CHARS} # of chars to be affected
  35.         SAMPLE: Callm   ATRB_WRT,<PAGE,ROWCOL,ATRB,NUM_CHARS>,
  36.  
  37. CHAR_GET.ASM         6/25/87       771
  38.         DESC:   gets a character from the keyboard                   V1.00
  39.         IN:     *{REQ_TYPE} (0:get character,1:see if character
  40.                  is there,2:get shift status)
  41.         OUT:    *{CHAR} character ( high byte is shift status,
  42.                  low byte is char.)
  43.         SAMPLE: Callm   CHAR_GET,<REQ_TYPE>,<CHAR>
  44.  
  45. CHG_DIR.ASM          6/25/87       821
  46.         DESC:   Changes to a new directory using the path provided   V1.00
  47.         IN:     *{SEG_VAL} segment  and
  48.                 *{OFFSET} offset of path string
  49.         SAMPLE: Callm   CHG_DIR,<SEG_VAL,OFFSET>,
  50.  
  51. CHG_MOD.ASM          6/25/87      1211
  52.         DESC:   Changes the mode of a file                           V1.00
  53.                 (ie archived, hidden, system)
  54.         IN:     *{SEG_VAL} segment and
  55.                 *{OFFSET} offset of filename
  56.                 *{FUNC_CODE} function code(1:set mode,0:get mode)
  57.                 *{FILE_MODE} mode of file (1:read only,2:hidden file,
  58.                  4:system file,8:volume label,10H:sub-directory,
  59.                  20H:archived file
  60.         OUT:    *{CMODE} mode of file after completions of call
  61.         SAMPLE: Callm   CHG_MOD,<SEG_VAL,OFFSET,FUNC_CODE,FILE_MODE>,<CMODE>
  62.  
  63. CLEAR.ASM            6/25/87       524
  64.         DESC:   Clears the screen                                    V1.00
  65.         SAMPLE: Callm   CLEAR,,
  66.  
  67. CLOSE.ASM            6/25/87       693
  68.         DESC:   Closes a file handle                                 V1.00
  69.         IN:     *{INHNDL} handle of file to be closed
  70.         SAMPLE: Callm   CLOSE,<INHNDL>,
  71.  
  72. COPY.ASM             6/25/87      2768
  73.         DESC:   Copies existing file to new or existing file         V1.00
  74.                 using complete path names
  75.         IN:     *{OUT_SEG_VAL} segment and
  76.                 *{OUT_OFFSET} offset of new filename
  77.                 *{IN_SEG_VAL} segment and
  78.                 *{IN_OFFSET} offset of old filename
  79.         SAMPLE: Callm   COPY,<OUT_SEG_VAL,OUT_OFFSET,IN_SEG_VAL,IN_OFFSET>,
  80.  
  81. CREATE.ASM           6/25/87      1009
  82.         DESC:   Creates a new data file                              V1.00
  83.         IN:     *{SEG_VAL} segment and
  84.                 *{OFFSET} offset of filename to be created as ASCIIZ string
  85.                 *{ATRB} attribute or mode of file as listed in CHG_MOD
  86.                  command
  87.         OUT:    *{OUTHNDL} handle of file created
  88.         SAMPLE: Callm   CREATE,<SEG_VAL,OFFSET,ATRB>,<OUTHNDL>
  89.  
  90. CURS_GET.ASM         6/25/87       938
  91.         DESC:   Gets Cursor Position                                 V1.00
  92.         IN:     *{PAGE_NUM} page number (0-7) in 40 character mode
  93.                  or (0-3) in 80 character mode (i.e. 0003) is page 4
  94.         OUT:    *{ROWCOL} row (0-24),col (0-79)  (i.e. 0104)
  95.                  1st row, 5th column
  96.                 *{CURS_MODE} cursor mode (see manual for description)
  97.         SAMPLE: Callm   CURS_GET,<PAGE_NUM>,<ROWCOL,CURS_MODE>
  98.  
  99. CURS_SET.ASM         6/25/87       883
  100.         DESC:   Sets Cursor Position                                 V1.01
  101.         IN:     *{ROWCOL} row and column to postion cursor
  102.                  row (0-24),col (0-79)  (i.e. 0104)
  103.                  1st row, 5th column
  104.                 *{PAGE_NUM} page number (0-7) in 40 character mode and (0-3)
  105.                  in 80 character mode (i.e. 0003) is page 4
  106.         SAMPLE: Callm   CURS_SET,<ROWCOL,PAGE_NUM>,
  107.  
  108. DATE_GET.ASM         6/25/87      1482
  109.         DESC:   Gets the system date                                 V1.00
  110.         OUT:    *{SEG_VAL} segment and
  111.                 *{OFFSET} offset of system date in format MM/DD/YY
  112.         SAMPLE: Callm   DATE_GET,<SEG_VAL,OFFSET>,
  113.  
  114. DELETE.ASM           6/25/87       822
  115.         DESC:   Deletes a file                                       V1.00
  116.         IN:     *{SEG_VAL} segment
  117.                 *{OFFSET} offset of filename to be deleted
  118.         SAMPLE: Callm   DELETE,<SEG_VAL,OFFSET>,
  119.  
  120. ERRORMSG.ASM         6/25/87      5589
  121.         DESC:   Prints DOS error messages 1-18 and additional user   V1.01
  122.                  supplied messages from 19 up. If the value of ERR_NUM is
  123.                  0 control returns to the calling program with no effect.
  124.                  If ERR_NUM is greater than the value of the maximum error
  125.                  message then the message "No Error for This Value" is
  126.                  displayed and control returns to DOS. If an error code is
  127.                  displayed then control also returns to DOS. The memory
  128.                  address where the error occured is displayed on exit.
  129.         IN:     *{ERR_NUM} error number where the possible legal values are:
  130.                  1......Invalid Function Number
  131.                  2......File Not Found
  132.                  3......Path Not Found
  133.                  4......Too Many Open Files (no handles left)
  134.                  5......Access Denied
  135.                  6......Invalid Handle
  136.                  7......Memory Control Blocks Destroyed
  137.                  8......Insufficient Memory
  138.                  9......Invalid Memory Block Address
  139.                 10......Invalid Environment
  140.                 11......Invalid Format
  141.                 12......Invalid Access Code
  142.                 13......Invalid Data
  143.                 14......This Error Does Not Exist
  144.                 15......Invalid Drive Was Specified
  145.                 16......Attempted To Remove The Current Directory
  146.                 17......Not Same Device
  147.                 18......No More Files
  148.                 19......No Room For File(s) On Target Disk
  149.                 20......No Filename(s) Specified
  150.                 21......No Volume Label On Disk
  151.                 22......Wrong Number of Parameters
  152.                 >22.....No Error for This Value
  153.         SAMPLE: Callm   ERRORMSG,<ERR_NUM>,
  154.  
  155. EXECUTE.ASM          6/25/87      2336
  156.         DESC:   Loads and Executes another program                   V1.00
  157.         IN:     *{SEG_VAL} segment and
  158.                 *{OFFSET} offset of filename to run including extension
  159.                 *{PAR_HI} high word and
  160.                 *{PAR_LO} low word of pointer to command line
  161.                  to be passed to new program. Command line should be in the
  162.                  form N,' ',PARAM,0DH where N is the length of PARAM+1, and is
  163.                  followed by a space. PARAM is the command line and 0DH is
  164.                  a carriage return ending the line.
  165.                 *{MEMBLK} segment value of last memory control block 
  166.                  segment is typically the value of DS at entry to the main
  167.                  program.
  168.                 *{SIZE} size of main calling program in segment form
  169.         SAMPLE: Callm   EXECUTE,<SEG_VAL,OFFSET,PAR_HI,PAR_LO,MEMBLK,SIZE>,
  170.  
  171. FILEDATE.ASM         6/25/87      1891
  172.         DESC:   Converts Bit-Mapped file date to ASCII format        V1.00
  173.         IN :        *file date in form yyyyyyymmmmmddddd
  174.                 where mm is the month 1-12
  175.                       dd is the day 1-31
  176.                       yy is the year 0-119 (1980-2099)
  177.         OUT :        *segment and
  178.                 *offset of the file date in the form
  179.                 mm/dd/yy
  180.         SAMPLE: Callm   FILEDATE,<DATE>,<ES,BX>
  181.  
  182. GET_DIR.ASM          6/25/87      1038
  183.         DESC:   gets the current directory path string in the form   V1.00
  184.                 dir1\dir2\dir3...
  185.         IN:     *{DRIVE} drive number of the drive to operate on where
  186.                  0 is the default, 1 is A, etc.
  187.                 *{SEG_VAL} segment and
  188.                 *{OFFSET} offset of 64 byte user are where resultant string
  189.                  will be placed ending with a byte containing 0
  190.         SAMPLE: Callm   GET_DIR,<DRIVE,SEG_VAL,OFFSET>,
  191.  
  192. GET_DSK.ASM          6/25/87       679
  193.         DESC:   returns the disk transfer address                    V1.00
  194.         OUT:    *{SEG_VAL} segment and
  195.                 *{OFFSET} offset of DTA
  196.         SAMPLE: Callm   GET_DSK,,<SEG_VAL,OFFSET>
  197.  
  198. GET_TEXT.ASM         6/25/87      1333
  199.         DESC:   gets a line of text from the keyboard                V1.00
  200.         IN:     *{MAX_CHARS} maximum # of characters to get from keyboard
  201.         OUT:    *{SEG_VAL} segment and
  202.                 *{OFFSET} offset of text buffer
  203.                 *{LENGTH} length of text
  204.         SAMPLE: Callm   GET_CHAR,<MAX_CHARS>,<SEG_VAL,OFFSET,LENGTH>
  205.  
  206. HELP.ASM             6/25/87      3269
  207.         DESC:   Provides help to the user for all programs           V1.03
  208.                 linking to the help module and following the
  209.                 specified format
  210.         IN:     *{DS} value passed to data segment at start of main program
  211.                 *{HELP} location of help data
  212.         OUT:    *{SEG_VAL} segment and
  213.                 *{OFFSET} offset of parameter string
  214.                 *{LENGTH} length of parameter string
  215.         SAMPLE: Callm   HELP,<DS,HELP>,<SEG_VAL,OFFSET,LENGTH>
  216.  
  217. HEXDSPLY.ASM         6/25/87      1855
  218.         DESC:   Displays hexadecimal codes as ASCII values           V1.00
  219.         IN:     *{HEX_WORD} hex word (0000 - FFFF)
  220.         OUT:    *{ASC_HI} first two characters of result (i.e EF from EFAB)
  221.                 *{ASC_LO} second two characters of result (i.e. AB from EFAB)
  222.         SAMPLE: Callm   HEXDSPLY,<HEX_WORD>,<ASC_HI,ASC_LO>
  223.  
  224. HEX_ASC.ASM          6/25/87      3724
  225.         DESC:   Convert Hex numbers to decimal in ASCII format       V1.03
  226.         IN:     *{HI_HEX} High order word of 4 byte hexadecimal number
  227.                 *{LO_HEX} Low order word of 4 byte hexadecimal number
  228.         OUT:    *{ASC_1} five words from MSB to LSB with leading
  229.                 *{ASC_2} zeros stripped
  230.                 *{ASC_3}
  231.                 *{ASC_4}
  232.                 *{ASC_5}
  233.         SAMPLE: Callm   HEX_ASC,<HI_HEX,LO_HEX>,
  234.                                 <ASC_1,ASC_2,ASC_3,ASC_4,ASC_5>
  235.  
  236. MOVE_BYT.ASM         6/25/87       912
  237.         DESC:   Moves a source buffer to a dest. buffer              V1.00
  238.         IN:     *{SEG_VAL1} segment and
  239.                 *{OFFSET1} offset of input buffer
  240.                 *{SEG_VAL2} segment and
  241.                 *{OFFSET2} offset of output buffer
  242.                 *{NUM_CHARS} # of chars to move
  243.         SAMPLE: Callm   MOVE_BYT,<SEG_VAL1,OFFSET1,SEG_VAL2,OFFSET2,
  244.                                  NUM_CHARS>,
  245.  
  246. MOV_PTR.ASM          6/25/87      1195
  247.         DESC:   Moves the file read/write pointer                    V1.00
  248.         IN:     *{METH_VAL} Method value
  249.                  (0:ofst,1:ofst+cloc,2:eof+offset)
  250.                 *{HANDLE} handle
  251.                 *{MSW} most significant word of offset
  252.                 *{LSW} least significant word of offset
  253.         OUT:    *{OMSW} most significant word of pointer location
  254.                 *{OLSW} least significant word of pointer location
  255.         SAMPLE: Callm   MOV_PTR,<METH_VAL,HANDLE,MSW,LSW>,<OMSW,OLSW>
  256.  
  257. OPEN.ASM             6/25/87       967
  258.         DESC:   Opens a file                                         V1.00
  259.         IN:     *{SEG_VAL} segment and
  260.                 *{OFFSET} offset of filename as ASCIIZ strng
  261.                 *{ACC_CODE} access code of file (0:read,1:write,2:read write)
  262.         OUT:    *{HANDLE} handle of file
  263.         SAMPLE: Callm   OPEN,<SEG_VAL,OFFSET,ACC_CODE>,<HANDLE>
  264.  
  265. PARM_BRK.ASM         6/25/87      1843
  266.         DESC:   Takes in parameter string retrieved from DOS level   V1.00
  267.                 and breaks the string into separate elements using
  268.                 commas and the end of line as the only breaks.
  269.         IN:     *{SEG_VAL} segment and
  270.                 *{OFFSET} offset of parameter string
  271.                 *{LENGTH} length of parameter string
  272.         OUT:    *{N} n is the number of sets of segment,offset  and length
  273.                  groups returned, which indicates the number of total
  274.                  parameters passed to the program.
  275.                 *{OSEG_VAL,OOFFSET,OLENGTH} repeated N times
  276.                  and returned in reverse order (i.e. P3, P2 , P1)
  277.         SAMPLE: Callm   PARM_BRK,<SEG_VAL,OFFSET,LENGTH>,
  278.                                  <N,<OSEG_VAL,OOFFSET,OLENGTH>>
  279.  
  280. PARM_GET.ASM         6/25/87      1127
  281.         DESC:   Gets parameters passed to program from DOS level     V1.00
  282.                 at DS+80H
  283.         IN:     *{DS} value passed to data segment at start of main program
  284.         OUT:    *{SEG_VAL} segment and
  285.                 *{OFFSET} offset of parameter string
  286.                 *{LENGTH} length of parameter string
  287.         SAMPLE: Callm   PARM_GET,<DS>,<SEG_VAL,OFFSET,LENGTH>
  288.  
  289. POPALL.ASM           6/25/87      1190
  290.         DESC:   Pop all registers (SI,DI,BP,ES,DS,DX,CX,BX,AX)       V1.00
  291.         SAMPLE: POPALL
  292.  
  293. PUSHALL.ASM          6/25/87      1277
  294.         DESC:   Push all registers (AX,BX,CX,DX,DS,ES,BP,DI,SI)      V1.00
  295.         SAMPLE: PUSHALL
  296.  
  297. READ.ASM             6/25/87      1008
  298.         DESC:   Reads data from a file                               V1.00
  299.         IN:     *{HANDLE} handle of file
  300.                 *{NUM_BYTES} number of bytes requested to read from file
  301.                 *{SEG_VAL} segment and
  302.                 *{OFFSET} offset of buffer
  303.         OUT:    *{NUM_READ} number of bytes actually read
  304.         SAMPLE: Callm   READ,<HANDLE,NUM_BYTES,SEG_VAL,OFFSET>,<NUM_READ>
  305.  
  306. REPLACE.ASM          6/25/87      1640
  307.         DESC:   Replaces an occurence of a string with another       V1.00
  308.                 string
  309.         IN:     *{RSTRNG} segment and
  310.                 *{ROFF} offset of replacement string (must be same length)
  311.                 *{DIR} direction of search (0:forward,1-FFFF:reverse)
  312.                 *{SEG_VAL} segment and
  313.                 *{OFFSET} offset of buffer to search
  314.                 *{LENGTH} length of search string
  315.                 *{SSTRNG} segment and
  316.                 *{OSTRNG} offset of search string
  317.         OUT:    *{OSEG} segment and
  318.                 *{OOFF} offset of replacement (both zero if not replaced)
  319.         SAMPLE: Callm   REPLACE,<RSTRNG,ROFF,DIR,SEG_VAL,OFFSET,LENGTH,
  320.                         SSTRNG,OSTRNG>,<OSEG,OOFF>
  321.  
  322. SCAN_BYT.ASM         6/25/87      2716
  323.         DESC:   Scans a source buffer for given characters           V1.01
  324.                 and returns the character and location of the closest
  325.                 matching character
  326.  
  327.         ***        SCAN_BYT performs forward and reverse searches. The CLD
  328.                 assembler command must be used before calling the procedure
  329.                 to perform a forward search. The STD command must be used
  330.                 before calling to perform a reverse search.     ***
  331.  
  332.         IN:     *{MATCH2N} 2nd and additional matches
  333.                 *{SEG_VAL} segment and
  334.                 *{OFFSET} offset of buffer to scan
  335.                 *{MATCH1} 1st of N number of possible matching sequences
  336.                 *{N} number of matching sequences passed in
  337.         OUT:    *{MATCH_VAL} value of matching character
  338.                 *{MATCH_LOC} location of offset in match segment where
  339.                  matching value was found
  340.         SAMPLE: Callm   SCAN_BYT,<MATCH2N,SEG_VAL,OFFSET,MATCH1,N>,
  341.                                  <MATCH_VAL,MATCH_LOC>
  342.  
  343. SCRN_RST.ASM         6/25/87       780
  344.         DESC:   Restores 16K screen to video memory                  V1.00
  345.         SAMPLE: SCRN_RST
  346.  
  347. SCRN_SAV.ASM         6/25/87       834
  348.         DESC:   Saves 16K screen from video memory                   V1.00
  349.         SAMPLE: SCRN_SAV
  350.  
  351. SCRN_TYP.ASM         6/25/87       899
  352.         DESC:   Returns the address of the video memory buffer       V1.00
  353.         OUT:    *{VIDEO} segment address of start of video memory area
  354.                  Useful only with MDA and CGA graphics. B&W area is at B000H
  355.                  while color area is at B800H
  356.         SAMPLE: Callm   SCRN_TYP,,<VIDEO>
  357.  
  358. SEARCH.ASM           6/25/87      2078
  359.         DESC:   Searches for a string in the indicated buffer        V1.02
  360.         IN:     *{DIR} direction of search (0:forward,1-FFFF:reverse)
  361.                 *{SEG_VAL} segment and
  362.                 *{OFFSET} offset of buffer to search
  363.                 *{LENGTH} length of search string
  364.                 *{SSTRNG} segment and
  365.                 *{OSTRNG} offset of search string
  366.         OUT:    *{OSEG} segment and
  367.                 *{OOFF} of search string (both zero if not found)
  368.         SAMPLE: Callm   SEARCH,<DIR,SEG_VAL,OFFSET,LENGTH,SSTRNG,OSTRNG>,
  369.                                <OSEG,OOFF>
  370.  
  371. SET_DSK.ASM          6/25/87       681
  372.         DESC:   sets the disk transfer address                       V1.00
  373.         IN:     *{SEG_VAL} segment and
  374.                 *{OFFSET} offset of DTA
  375.         SAMPLE: Callm   SET_DSK,<SEG_VAL,OFFSET>,
  376.  
  377. SRCH_FIL.ASM         6/25/87      2791
  378.         DESC:   search for the first of a set of matching filenames  V1.00
  379.  
  380.         ***        CX must be loaded with the appropriate file attribute
  381.                 to search on (1:read only,2:hidden file,
  382.                  4:system file,8:volume label,10H:sub-directory,
  383.                  20H:archived file).                              ***
  384.  
  385.         IN:     *{SEG_VAL} segment and
  386.                 *{OFFSET} offset of search string
  387.         OUT:    *{TIME} time file last written
  388.                 *{DATE} date file last written
  389.                 *{SIZE_LO} low word of file size
  390.                 *{SIZE_HI} high word of file size
  391.                 *{OUT_SEG} segment and
  392.                 *{OUT_OFF} offset of first matching filename
  393.                 *{LENGTH} length of filename found, 0 if not found
  394.         SAMPLE: SRCH_FIL,<SEG_VAL,OFFSET>,
  395.                          <TIME,DATE,SIZE_LO,SIZE_HI,OUT_SEG,OUT_OFF,LENGTH>
  396.  
  397. SRCH_NXT.ASM         6/25/87      2791
  398.         DESC:   search for the next of a set of matching filenames   V1.00
  399.  
  400.         ***        CX must be loaded with the appropriate file attribute
  401.                 to search on (1:read only,2:hidden file,
  402.                  4:system file,8:volume label,10H:sub-directory,
  403.                  20H:archived file).                              ***
  404.  
  405.         IN:     *{SEG_VAL} segment and
  406.                 *{OFFSET} offset of search string
  407.         OUT:    *{TIME} time file last written
  408.                 *{DATE} date file last written
  409.                 *{SIZE_LO} low word of file size
  410.                 *{SIZE_HI} high word of file size
  411.                 *{OUT_SEG} segment and
  412.                 *{OUT_OFF} offset of first matching filename
  413.                 *{LENGTH} length of filename found, 0 if not found
  414.         SAMPLE: SRCH_NXT,<SEG_VAL,OFFSET>,
  415.                          <TIME,DATE,SIZE_LO,SIZE_HI,OUT_SEG,OUT_OFF,LENGTH>
  416.  
  417. SRCH_PRE.ASM         6/25/87      2440
  418.         DESC:   search for the previous file of a set of filenames   V1.00
  419.  
  420.         ***        CX must be loaded with the appropriate file attribute
  421.                 to search on (1:read only,2:hidden file,
  422.                  4:system file,8:volume label,10H:sub-directory,
  423.                  20H:archived file).                              ***
  424.  
  425.         IN:     *{SEG_VAL} segment and
  426.                 *{OFFSET} offset of search string
  427.         OUT:    *{TIME} time file last written
  428.                 *{DATE} date file last written
  429.                 *{SIZE_LO} low word of file size
  430.                 *{SIZE_HI} high word of file size
  431.                 *{OUT_SEG} segment and
  432.                 *{OUT_OFF} offset of first matching filename
  433.                 *{LENGTH} length of filename found, 0 if not found
  434.         SAMPLE: SRCH_PRE,<SEG_VAL,OFFSET>,
  435.                          <TIME,DATE,SIZE_LO,SIZE_HI,OUT_SEG,OUT_OFF,LENGTH>
  436.  
  437. SRCH_VOL.ASM         6/25/87      1483
  438.         DESC:   Search for a volume name                             V1.00
  439.         IN:     *{DRIVE} drive number (0:default,1:A,2:B,etc...)
  440.         OUT:    *{SEG_VAL} segment and
  441.                 *{OFFSET} offset of volume name
  442.                 *{FLAG} has a value of 0 if a volume label is found
  443.         SAMPLE: Callm,<DRIVE>,<SEG_VAL,OFFSET,FLAG>
  444.  
  445. STK_STOP.ASM         6/25/87       685
  446.         DESC:   return from the user stack to the system stack       V1.00
  447.         SAMPLE: STK_STOP
  448.  
  449. STK_STRT.ASM         6/25/87       742
  450.         DESC:   start a user stack                                   V1.00
  451.         SAMPLE: STK_STRT
  452.  
  453. TEXT_RD.ASM          6/25/87      2204
  454.         DESC:   Reads text from the screen                           V1.00
  455.         IN:     *{PAGE} page number of screen (0-3)
  456.                 *{ROWCOL} row(0-24), col(0-79) (i.e. 0345) at which to
  457.                  begin reading from screen
  458.                 *{NUM_CHARS} # of chars to read
  459.         OUT:    *{SEG_VAL} segment and
  460.                 *{OFFSET} offset of string read
  461.         SAMPLE: Callm   TEXT_RD,<PAGE,ROWCOL,NUM_CHARS>,<SEG_VAL,OFFSET>
  462.  
  463. TEXT_WRT.ASM         6/25/87      3181
  464.         DESC:   Writes text to screen                                V1.02
  465.         IN:     *{ATTRIB_PAGE} attribute used to display text (00-FFH),
  466.                  page number to write on (0-3)
  467.                 *{ROWCOL} row(0-24), col(0-79) row and column to start writing
  468.                  at.
  469.                 *{SEG_VAL} segment of text and
  470.                 *{OFFSET} offset of text
  471.                 *{END_OFF} offset end text
  472.         SAMPLE: Callm   TEXT_WRT,<PAGE,ROWCOL,SEG_VAL,OFFSET,END_OFF>,
  473.  
  474. TIME_GET.ASM         6/25/87      1546
  475.         DESC:   Gets the system time                                 V1.00
  476.         OUT:    *{SEG_VAL} segment address and
  477.                 *{OFFSET} offset within segment of time in ASCII printable
  478.                  format. Time is in format HH:MM:SS.XX
  479.         SAMPLE: Callm   TIME_GET,,<SEG_VAL,OFFSET>
  480.  
  481. WRITE.ASM            6/25/87       995
  482.         DESC:   Writes to a data file                                V1.00
  483.         IN:     *{HANDLE} handle of file
  484.                 *{NUM_BYTES} number of bytes to write
  485.                 *{SEG_VAL} segment and
  486.                 *{OFFSET} offset of buffer
  487.         OUT:    *{OUT_BYTES} number of bytes actually written
  488.         SAMPLE: Callm   WRITE,<HANDLE,NUM_BYTES,SEG_VAL,OFFSET>,<OUT_BYTES>
  489.  
  490.        SECTION II. ROUTINES LISTED BY FUNCTIONAL AREA
  491.  
  492.                         BUFFER OPERATIONS
  493.  
  494. HEXDSPLY.ASM         6/25/87      1855
  495.         DESC:   Displays hexadecimal codes as ASCII values           V1.00
  496.         IN:     *{HEX_WORD} hex word (0000 - FFFF)
  497.         OUT:    *{ASC_HI} first two characters of result (i.e EF from EFAB)
  498.                 *{ASC_LO} second two characters of result (i.e. AB from EFAB)
  499.         SAMPLE: Callm   HEXDSPLY,<HEX_WORD>,<ASC_HI,ASC_LO>
  500.  
  501. HEX_ASC.ASM          6/25/87      3724
  502.         DESC:   Convert Hex numbers to decimal in ASCII format       V1.03
  503.         IN:     *{HI_HEX} High order word of 4 byte hexadecimal number
  504.                 *{LO_HEX} Low order word of 4 byte hexadecimal number
  505.         OUT:    *{ASC_1} five words from MSB to LSB with leading
  506.                 *{ASC_2} zeros stripped
  507.                 *{ASC_3}
  508.                 *{ASC_4}
  509.                 *{ASC_5}
  510.         SAMPLE: Callm   HEX_ASC,<HI_HEX,LO_HEX>,
  511.                                 <ASC_1,ASC_2,ASC_3,ASC_4,ASC_5>
  512.  
  513. MOVE_BYT.ASM         6/25/87       912
  514.         DESC:   Moves a source buffer to a dest. buffer              V1.00
  515.         IN:     *{SEG_VAL1} segment and
  516.                 *{OFFSET1} offset of input buffer
  517.                 *{SEG_VAL2} segment and
  518.                 *{OFFSET2} offset of output buffer
  519.                 *{NUM_CHARS} # of chars to move
  520.         SAMPLE: Callm   MOVE_BYT,<SEG_VAL1,OFFSET1,SEG_VAL2,OFFSET2,
  521.                                  NUM_CHARS>,
  522.  
  523. REPLACE.ASM          6/25/87      1640
  524.         DESC:   Replaces an occurence of a string with another       V1.00
  525.                 string
  526.         IN:     *{RSTRNG} segment and
  527.                 *{ROFF} offset of replacement string (must be same length)
  528.                 *{DIR} direction of search (0:forward,1-FFFF:reverse)
  529.                 *{SEG_VAL} segment and
  530.                 *{OFFSET} offset of buffer to search
  531.                 *{LENGTH} length of search string
  532.                 *{SSTRNG} segment and
  533.                 *{OSTRNG} offset of search string
  534.         OUT:    *{OSEG} segment and
  535.                 *{OOFF} offset of replacement (both zero if not replaced)
  536.         SAMPLE: Callm   REPLACE,<RSTRNG,ROFF,DIR,SEG_VAL,OFFSET,LENGTH,
  537.                         SSTRNG,OSTRNG>,<OSEG,OOFF>
  538.  
  539. SCAN_BYT.ASM         6/25/87      2716
  540.         DESC:   Scans a source buffer for given characters           V1.01
  541.                 and returns the character and location of the closest
  542.                 matching character
  543.  
  544.         ***        SCAN_BYT performs forward and reverse searches. The CLD
  545.                 assembler command must be used before calling the procedure
  546.                 to perform a forward search. The STD command must be used
  547.                 before calling to perform a reverse search.     ***
  548.  
  549.         IN:     *{MATCH2N} 2nd and additional matches
  550.                 *{SEG_VAL} segment and
  551.                 *{OFFSET} offset of buffer to scan
  552.                 *{MATCH1} 1st of N number of possible matching sequences
  553.                 *{N} number of matching sequences passed in
  554.         OUT:    *{MATCH_VAL} value of matching character
  555.                 *{MATCH_LOC} location of offset in match segment where
  556.                  matching value was found
  557.         SAMPLE: Callm   SCAN_BYT,<MATCH2N,SEG_VAL,OFFSET,MATCH1,N>,
  558.                                  <MATCH_VAL,MATCH_LOC>
  559.  
  560. SEARCH.ASM           6/25/87      2078
  561.         DESC:   Searches for a string in the indicated buffer        V1.02
  562.         IN:     *{DIR} direction of search (0:forward,1-FFFF:reverse)
  563.                 *{SEG_VAL} segment and
  564.                 *{OFFSET} offset of buffer to search
  565.                 *{LENGTH} length of search string
  566.                 *{SSTRNG} segment and
  567.                 *{OSTRNG} offset of search string
  568.         OUT:    *{OSEG} segment and
  569.                 *{OOFF} of search string (both zero if not found)
  570.         SAMPLE: Callm   SEARCH,<DIR,SEG_VAL,OFFSET,LENGTH,SSTRNG,OSTRNG>,
  571.                                <OSEG,OOFF>
  572.  
  573.                            DOS CONTROL
  574.  
  575. ALOC_CHG.ASM         6/25/87       902
  576.         DESC:   Modifies Allocated memory block size                 V1.00
  577.         IN:     *{BLOCK} segment address of memory block to be modified
  578.                 *{PARA} new requested block size in paragraphs {ie multiples
  579.                  of 16 bytes}
  580.         SAMPLE: Callm   ALOC_CHG,<BLOCK,PARA>,
  581.  
  582. CHG_DIR.ASM          6/25/87       821
  583.         DESC:   Changes to a new directory using the path provided   V1.00
  584.         IN:     *{SEG_VAL} segment  and
  585.                 *{OFFSET} offset of path string
  586.         SAMPLE: Callm   CHG_DIR,<SEG_VAL,OFFSET>,
  587.  
  588. EXECUTE.ASM          6/25/87      2336
  589.         DESC:   Loads and Executes another program                   V1.00
  590.         IN:     *{SEG_VAL} segment and
  591.                 *{OFFSET} offset of filename to run including extension
  592.                 *{PAR_HI} high word and
  593.                 *{PAR_LO} low word of pointer to command line
  594.                  to be passed to new program. Command line should be in the
  595.                  form N,' ',PARAM,0DH where N is the length of PARAM+1, and is
  596.                  followed by a space. PARAM is the command line and 0DH is
  597.                  a carriage return ending the line.
  598.                 *{MEMBLK} segment value of last memory control block 
  599.                  segment is typically the value of DS at entry to the main
  600.                  program.
  601.                 *{SIZE} size of main calling program in segment form
  602.         SAMPLE: Callm   EXECUTE,<SEG_VAL,OFFSET,PAR_HI,PAR_LO,MEMBLK,SIZE>,
  603.  
  604. GET_DIR.ASM          6/25/87      1038
  605.         DESC:   gets the current directory path string in the form   V1.00
  606.                 dir1\dir2\dir3...
  607.         IN:     *{DRIVE} drive number of the drive to operate on where
  608.                  0 is the default, 1 is A, etc.
  609.                 *{SEG_VAL} segment and
  610.                 *{OFFSET} offset of 64 byte user are where resultant string
  611.                  will be placed ending with a byte containing 0
  612.         SAMPLE: Callm   GET_DIR,<DRIVE,SEG_VAL,OFFSET>,
  613.  
  614. PARM_BRK.ASM         6/25/87      1843
  615.         DESC:   Takes in parameter string retrieved from DOS level   V1.00
  616.                 and breaks the string into separate elements using
  617.                 commas and the end of line as the only breaks.
  618.         IN:     *{SEG_VAL} segment and
  619.                 *{OFFSET} offset of parameter string
  620.                 *{LENGTH} length of parameter string
  621.         OUT:    *{N} n is the number of sets of segment,offset  and length
  622.                  groups returned, which indicates the number of total
  623.                  parameters passed to the program.
  624.                 *{OSEG_VAL,OOFFSET,OLENGTH} repeated N times
  625.                  and returned in reverse order (i.e. P3, P2 , P1)
  626.         SAMPLE: Callm   PARM_BRK,<SEG_VAL,OFFSET,LENGTH>,
  627.                                  <N,<OSEG_VAL,OOFFSET,OLENGTH>>
  628.  
  629. PARM_GET.ASM         6/25/87      1127
  630.         DESC:   Gets parameters passed to program from DOS level     V1.00
  631.                 at DS+80H
  632.         IN:     *{DS} value passed to data segment at start of main program
  633.         OUT:    *{SEG_VAL} segment and
  634.                 *{OFFSET} offset of parameter string
  635.                 *{LENGTH} length of parameter string
  636.         SAMPLE: Callm   PARM_GET,<DS>,<SEG_VAL,OFFSET,LENGTH>
  637.  
  638. POPALL.ASM           6/25/87      1190
  639.         DESC:   Pop all registers (SI,DI,BP,ES,DS,DX,CX,BX,AX)       V1.00
  640.         SAMPLE: POPALL
  641.  
  642. PUSHALL.ASM          6/25/87      1277
  643.         DESC:   Push all registers (AX,BX,CX,DX,DS,ES,BP,DI,SI)      V1.00
  644.         SAMPLE: PUSHALL
  645.  
  646. SET_DSK.ASM          6/25/87       681
  647.         DESC:   sets the disk transfer address                       V1.00
  648.         IN:     *{SEG_VAL} segment and
  649.                 *{OFFSET} offset of DTA
  650.         SAMPLE: Callm   SET_DSK,<SEG_VAL,OFFSET>,
  651.  
  652. STK_STOP.ASM         6/25/87       685
  653.         DESC:   return from the user stack to the system stack       V1.00
  654.         SAMPLE: STK_STOP
  655.  
  656. STK_STRT.ASM         6/25/87       742
  657.         DESC:   start a user stack                                   V1.00
  658.         SAMPLE: STK_STRT
  659.  
  660.                         FILE MANIPULATION
  661.  
  662. CHG_MOD.ASM          6/25/87      1211
  663.         DESC:   Changes the mode of a file                           V1.00
  664.                 (ie archived, hidden, system)
  665.         IN:     *{SEG_VAL} segment and
  666.                 *{OFFSET} offset of filename
  667.                 *{FUNC_CODE} function code(1:set mode,0:get mode)
  668.                 *{FILE_MODE} mode of file (1:read only,2:hidden file,
  669.                  4:system file,8:volume label,10H:sub-directory,
  670.                  20H:archived file
  671.         OUT:    *{CMODE} mode of file after completions of call
  672.         SAMPLE: Callm   CHG_MOD,<SEG_VAL,OFFSET,FUNC_CODE,FILE_MODE>,<CMODE>
  673.  
  674. CLOSE.ASM            6/25/87       693
  675.         DESC:   Closes a file handle                                 V1.00
  676.         IN:     *{INHNDL} handle of file to be closed
  677.         SAMPLE: Callm   CLOSE,<INHNDL>,
  678.  
  679. COPY.ASM             6/25/87      2768
  680.         DESC:   Copies existing file to new or existing file         V1.00
  681.                 using complete path names
  682.         IN:     *{OUT_SEG_VAL} segment and
  683.                 *{OUT_OFFSET} offset of new filename
  684.                 *{IN_SEG_VAL} segment and
  685.                 *{IN_OFFSET} offset of old filename
  686.         SAMPLE: Callm   COPY,<OUT_SEG_VAL,OUT_OFFSET,IN_SEG_VAL,IN_OFFSET>,
  687.  
  688. CREATE.ASM           6/25/87      1009
  689.         DESC:   Creates a new data file                              V1.00
  690.         IN:     *{SEG_VAL} segment and
  691.                 *{OFFSET} offset of filename to be created as ASCIIZ string
  692.                 *{ATRB} attribute or mode of file as listed in CHG_MOD
  693.                  command
  694.         OUT:    *{OUTHNDL} handle of file created
  695.         SAMPLE: Callm   CREATE,<SEG_VAL,OFFSET,ATRB>,<OUTHNDL>
  696.  
  697. DELETE.ASM           6/25/87       822
  698.         DESC:   Deletes a file                                       V1.00
  699.         IN:     *{SEG_VAL} segment
  700.                 *{OFFSET} offset of filename to be deleted
  701.         SAMPLE: Callm   DELETE,<SEG_VAL,OFFSET>,
  702.  
  703. MOV_PTR.ASM          6/25/87      1195
  704.         DESC:   Moves the file read/write pointer                    V1.00
  705.         IN:     *{METH_VAL} Method value
  706.                  (0:ofst,1:ofst+cloc,2:eof+offset)
  707.                 *{HANDLE} handle
  708.                 *{MSW} most significant word of offset
  709.                 *{LSW} least significant word of offset
  710.         OUT:    *{OMSW} most significant word of pointer location
  711.                 *{OLSW} least significant word of pointer location
  712.         SAMPLE: Callm   MOV_PTR,<METH_VAL,HANDLE,MSW,LSW>,<OMSW,OLSW>
  713.  
  714. OPEN.ASM             6/25/87       967
  715.         DESC:   Opens a file                                         V1.00
  716.         IN:     *{SEG_VAL} segment and
  717.                 *{OFFSET} offset of filename as ASCIIZ strng
  718.                 *{ACC_CODE} access code of file (0:read,1:write,2:read write)
  719.         OUT:    *{HANDLE} handle of file
  720.         SAMPLE: Callm   OPEN,<SEG_VAL,OFFSET,ACC_CODE>,<HANDLE>
  721.  
  722. READ.ASM             6/25/87      1008
  723.         DESC:   Reads data from a file                               V1.00
  724.         IN:     *{HANDLE} handle of file
  725.                 *{NUM_BYTES} number of bytes requested to read from file
  726.                 *{SEG_VAL} segment and
  727.                 *{OFFSET} offset of buffer
  728.         OUT:    *{NUM_READ} number of bytes actually read
  729.         SAMPLE: Callm   READ,<HANDLE,NUM_BYTES,SEG_VAL,OFFSET>,<NUM_READ>
  730.  
  731. SRCH_FIL.ASM         6/25/87      2791
  732.         DESC:   search for the first of a set of matching filenames  V1.00
  733.  
  734.         ***        CX must be loaded with the appropriate file attribute
  735.                 to search on (1:read only,2:hidden file,
  736.                  4:system file,8:volume label,10H:sub-directory,
  737.                  20H:archived file).                              ***
  738.  
  739.         IN:     *{SEG_VAL} segment and
  740.                 *{OFFSET} offset of search string
  741.         OUT:    *{TIME} time file last written
  742.                 *{DATE} date file last written
  743.                 *{SIZE_LO} low word of file size
  744.                 *{SIZE_HI} high word of file size
  745.                 *{OUT_SEG} segment and
  746.                 *{OUT_OFF} offset of first matching filename
  747.                 *{LENGTH} length of filename found, 0 if not found
  748.         SAMPLE: SRCH_FIL,<SEG_VAL,OFFSET>,
  749.                          <TIME,DATE,SIZE_LO,SIZE_HI,OUT_SEG,OUT_OFF,LENGTH>
  750.  
  751. SRCH_NXT.ASM         6/25/87      2791
  752.         DESC:   search for the next of a set of matching filenames   V1.00
  753.  
  754.         ***        CX must be loaded with the appropriate file attribute
  755.                 to search on (1:read only,2:hidden file,
  756.                  4:system file,8:volume label,10H:sub-directory,
  757.                  20H:archived file).                              ***
  758.  
  759.         IN:     *{SEG_VAL} segment and
  760.                 *{OFFSET} offset of search string
  761.         OUT:    *{TIME} time file last written
  762.                 *{DATE} date file last written
  763.                 *{SIZE_LO} low word of file size
  764.                 *{SIZE_HI} high word of file size
  765.                 *{OUT_SEG} segment and
  766.                 *{OUT_OFF} offset of first matching filename
  767.                 *{LENGTH} length of filename found, 0 if not found
  768.         SAMPLE: SRCH_NXT,<SEG_VAL,OFFSET>,
  769.                          <TIME,DATE,SIZE_LO,SIZE_HI,OUT_SEG,OUT_OFF,LENGTH>
  770.  
  771. SRCH_PRE.ASM         6/25/87      2440
  772.         DESC:   search for the previous file of a set of filenames   V1.00
  773.  
  774.         ***        CX must be loaded with the appropriate file attribute
  775.                 to search on (1:read only,2:hidden file,
  776.                  4:system file,8:volume label,10H:sub-directory,
  777.                  20H:archived file).                              ***
  778.  
  779.         IN:     *{SEG_VAL} segment and
  780.                 *{OFFSET} offset of search string
  781.         OUT:    *{TIME} time file last written
  782.                 *{DATE} date file last written
  783.                 *{SIZE_LO} low word of file size
  784.                 *{SIZE_HI} high word of file size
  785.                 *{OUT_SEG} segment and
  786.                 *{OUT_OFF} offset of first matching filename
  787.                 *{LENGTH} length of filename found, 0 if not found
  788.         SAMPLE: SRCH_PRE,<SEG_VAL,OFFSET>,
  789.                          <TIME,DATE,SIZE_LO,SIZE_HI,OUT_SEG,OUT_OFF,LENGTH>
  790.  
  791. SRCH_VOL.ASM         6/25/87      1483
  792.         DESC:   Search for a volume name                             V1.00
  793.         IN:     *{DRIVE} drive number (0:default,1:A,2:B,etc...)
  794.         OUT:    *{SEG_VAL} segment and
  795.                 *{OFFSET} offset of volume name
  796.                 *{FLAG} has a value of 0 if a volume label is found
  797.         SAMPLE: Callm,<DRIVE>,<SEG_VAL,OFFSET,FLAG>
  798.  
  799. WRITE.ASM            6/25/87       995
  800.         DESC:   Writes to a data file                                V1.00
  801.         IN:     *{HANDLE} handle of file
  802.                 *{NUM_BYTES} number of bytes to write
  803.                 *{SEG_VAL} segment and
  804.                 *{OFFSET} offset of buffer
  805.         OUT:    *{OUT_BYTES} number of bytes actually written
  806.         SAMPLE: Callm   WRITE,<HANDLE,NUM_BYTES,SEG_VAL,OFFSET>,<OUT_BYTES>
  807.  
  808.                           I/O ROUTINES
  809.  
  810. CHAR_GET.ASM         6/25/87       771
  811.         DESC:   gets a character from the keyboard                   V1.00
  812.         IN:     *{REQ_TYPE} (0:get character,1:see if character
  813.                  is there,2:get shift status)
  814.         OUT:    *{CHAR} character ( high byte is shift status,
  815.                  low byte is char.)
  816.         SAMPLE: Callm   CHAR_GET,<REQ_TYPE>,<CHAR>
  817.  
  818. GET_TEXT.ASM         6/25/87      1333
  819.         DESC:   gets a line of text from the keyboard                V1.00
  820.         IN:     *{MAX_CHARS} maximum # of characters to get from keyboard
  821.         OUT:    *{SEG_VAL} segment and
  822.                 *{OFFSET} offset of text buffer
  823.                 *{LENGTH} length of text
  824.         SAMPLE: Callm   GET_CHAR,<MAX_CHARS>,<SEG_VAL,OFFSET,LENGTH>
  825.  
  826.                        PROGRAM INFORMATION
  827.  
  828. ERRORMSG.ASM         6/25/87      5589
  829.         DESC:   Prints DOS error messages 1-18 and additional user   V1.01
  830.                  supplied messages from 19 up. If the value of ERR_NUM is
  831.                  0 control returns to the calling program with no effect.
  832.                  If ERR_NUM is greater than the value of the maximum error
  833.                  message then the message "No Error for This Value" is
  834.                  displayed and control returns to DOS. If an error code is
  835.                  displayed then control also returns to DOS. The memory
  836.                  address where the error occured is displayed on exit.
  837.         IN:     *{ERR_NUM} error number where the possible legal values are:
  838.                  1......Invalid Function Number
  839.                  2......File Not Found
  840.                  3......Path Not Found
  841.                  4......Too Many Open Files (no handles left)
  842.                  5......Access Denied
  843.                  6......Invalid Handle
  844.                  7......Memory Control Blocks Destroyed
  845.                  8......Insufficient Memory
  846.                  9......Invalid Memory Block Address
  847.                 10......Invalid Environment
  848.                 11......Invalid Format
  849.                 12......Invalid Access Code
  850.                 13......Invalid Data
  851.                 14......This Error Does Not Exist
  852.                 15......Invalid Drive Was Specified
  853.                 16......Attempted To Remove The Current Directory
  854.                 17......Not Same Device
  855.                 18......No More Files
  856.                 19......No Room For File(s) On Target Disk
  857.                 20......No Filename(s) Specified
  858.                 21......No Volume Label On Disk
  859.                 22......Wrong Number of Parameters
  860.                 >22.....No Error for This Value
  861.         SAMPLE: Callm   ERRORMSG,<ERR_NUM>,
  862.  
  863. GET_DSK.ASM          6/25/87       679
  864.         DESC:   returns the disk transfer address                    V1.00
  865.         OUT:    *{SEG_VAL} segment and
  866.                 *{OFFSET} offset of DTA
  867.         SAMPLE: Callm   GET_DSK,,<SEG_VAL,OFFSET>
  868.  
  869.                        SCREEN MANIPULATION
  870.  
  871. ATRB_WRT.ASM         6/25/87      2268
  872.         DESC:   Writes character attributes to the screen            V1.00
  873.         IN:     *{PAGE} page number (0-3) 4 available pages in 80 column mode
  874.                 *{ROWCOL} row(0-24),col(0-79) (ie 0345 indicating fourth row,
  875.                  46th column)
  876.                 *{ATRB} attribute (see technical reference manual for
  877.                  information on color graphics adapter)
  878.                 *{NUM_CHARS} # of chars to be affected
  879.         SAMPLE: Callm   ATRB_WRT,<PAGE,ROWCOL,ATRB,NUM_CHARS>,
  880.  
  881. CLEAR.ASM            6/25/87       524
  882.         DESC:   Clears the screen                                    V1.00
  883.         SAMPLE: Callm   CLEAR,,
  884.  
  885. CURS_GET.ASM         6/25/87       938
  886.         DESC:   Gets Cursor Position                                 V1.00
  887.         IN:     *{PAGE_NUM} page number (0-7) in 40 character mode
  888.                  or (0-3) in 80 character mode (i.e. 0003) is page 4
  889.         OUT:    *{ROWCOL} row (0-24),col (0-79)  (i.e. 0104)
  890.                  1st row, 5th column
  891.                 *{CURS_MODE} cursor mode (see manual for description)
  892.         SAMPLE: Callm   CURS_GET,<PAGE_NUM>,<ROWCOL,CURS_MODE>
  893.  
  894. CURS_SET.ASM         6/25/87       883
  895.         DESC:   Sets Cursor Position                                 V1.01
  896.         IN:     *{ROWCOL} row and column to postion cursor
  897.                  row (0-24),col (0-79)  (i.e. 0104)
  898.                  1st row, 5th column
  899.                 *{PAGE_NUM} page number (0-7) in 40 character mode and (0-3)
  900.                  in 80 character mode (i.e. 0003) is page 4
  901.         SAMPLE: Callm   CURS_SET,<ROWCOL,PAGE_NUM>,
  902.  
  903. SCRN_RST.ASM         6/25/87       780
  904.         DESC:   Restores 16K screen to video memory                  V1.00
  905.         SAMPLE: SCRN_RST
  906.  
  907. SCRN_SAV.ASM         6/25/87       834
  908.         DESC:   Saves 16K screen from video memory                   V1.00
  909.         SAMPLE: SCRN_SAV
  910.  
  911. SCRN_TYP.ASM         6/25/87       899
  912.         DESC:   Returns the address of the video memory buffer       V1.00
  913.         OUT:    *{VIDEO} segment address of start of video memory area
  914.                  Useful only with MDA and CGA graphics. B&W area is at B000H
  915.                  while color area is at B800H
  916.         SAMPLE: Callm   SCRN_TYP,,<VIDEO>
  917.  
  918. TEXT_RD.ASM          6/25/87      2204
  919.         DESC:   Reads text from the screen                           V1.00
  920.         IN:     *{PAGE} page number of screen (0-3)
  921.                 *{ROWCOL} row(0-24), col(0-79) (i.e. 0345) at which to
  922.                  begin reading from screen
  923.                 *{NUM_CHARS} # of chars to read
  924.         OUT:    *{SEG_VAL} segment and
  925.                 *{OFFSET} offset of string read
  926.         SAMPLE: Callm   TEXT_RD,<PAGE,ROWCOL,NUM_CHARS>,<SEG_VAL,OFFSET>
  927.  
  928. TEXT_WRT.ASM         6/25/87      3181
  929.         DESC:   Writes text to screen                                V1.02
  930.         IN:     *{ATTRIB_PAGE} attribute used to display text (00-FFH),
  931.                  page number to write on (0-3)
  932.                 *{ROWCOL} row(0-24), col(0-79) row and column to start writing
  933.                  at.
  934.                 *{SEG_VAL} segment of text and
  935.                 *{OFFSET} offset of text
  936.                 *{END_OFF} offset end text
  937.         SAMPLE: Callm   TEXT_WRT,<PAGE,ROWCOL,SEG_VAL,OFFSET,END_OFF>,
  938.  
  939.                        SYSTEM INFORMATION
  940.  
  941. DATE_GET.ASM         6/25/87      1482
  942.         DESC:   Gets the system date                                 V1.00
  943.         OUT:    *{SEG_VAL} segment and
  944.                 *{OFFSET} offset of system date in format MM/DD/YY
  945.         SAMPLE: Callm   DATE_GET,<SEG_VAL,OFFSET>,
  946.  
  947. FILEDATE.ASM         6/25/87      1891
  948.         DESC:   Converts Bit-Mapped file date to ASCII format        V1.00
  949.         IN :        *file date in form yyyyyyymmmmmddddd
  950.                 where mm is the month 1-12
  951.                       dd is the day 1-31
  952.                       yy is the year 0-119 (1980-2099)
  953.         OUT :        *segment and
  954.                 *offset of the file date in the form
  955.                 mm/dd/yy
  956.         SAMPLE: Callm   FILEDATE,<DATE>,<ES,BX>
  957.  
  958. HELP.ASM             6/25/87      3269
  959.         DESC:   Provides help to the user for all programs           V1.03
  960.                 linking to the help module and following the
  961.                 specified format
  962.         IN:     *{DS} value passed to data segment at start of main program
  963.                 *{HELP} location of help data
  964.         OUT:    *{SEG_VAL} segment and
  965.                 *{OFFSET} offset of parameter string
  966.                 *{LENGTH} length of parameter string
  967.         SAMPLE: Callm   HELP,<DS,HELP>,<SEG_VAL,OFFSET,LENGTH>
  968.  
  969. TIME_GET.ASM         6/25/87      1546
  970.         DESC:   Gets the system time                                 V1.00
  971.         OUT:    *{SEG_VAL} segment address and
  972.                 *{OFFSET} offset within segment of time in ASCII printable
  973.                  format. Time is in format HH:MM:SS.XX
  974.         SAMPLE: Callm   TIME_GET,,<SEG_VAL,OFFSET>
  975.